package com.hayato.gpstweet.controller.twitter;

import org.slim3.controller.Controller;
import org.slim3.controller.Navigation;

import twitter4j.conf.Configuration;
import twitter4j.conf.ConfigurationContext;
import twitter4j.http.OAuthAuthorization;
import twitter4j.http.RequestToken;

import com.hayato.gpstweet.service.TwitterService;

public class RequestTokenController extends Controller {

    @Override
    public Navigation run() throws Exception {
        Configuration conf = ConfigurationContext.getInstance();
        OAuthAuthorization oauth = new OAuthAuthorization(conf, TwitterService.consumerKey, TwitterService.consumerSecret);
        // Twitterの認証画面からの戻り先を指定します。
        // AccessTokenコントローラを指定します。
        String callbackURL = "http://localhost:8888/twitter/accessToken";
        RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);
        // RequestTokenをセッションに保存しておきます。
        sessionScope("RequestToken", requestToken);
        // Twitterの認証画面へリダイレクトします。
        return redirect(requestToken.getAuthenticationURL());
    }
}
